<html>
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  <title>
   Spring XD简介：大数据应用的运行时环境  | 数螺 | NAUT IDEA
  </title>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" rel="stylesheet"/>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
  <style type="text/css">
   #xmain img {
                  max-width: 100%;
                  display: block;
                  margin-top: 10px;
                  margin-bottom: 10px;
                }

                #xmain p {
                    line-height:150%;
                    font-size: 16px;
                    margin-top: 20px;
                }

                #xmain h2 {
                    font-size: 24px;
                }

                #xmain h3 {
                    font-size: 20px;
                }

                #xmain h4 {
                    font-size: 18px;
                }


                .header {
	           background-color: #0099ff;
	           color: #ffffff;
	           margin-bottom: 20px;
	        }

	        .header p {
                  margin: 0px;
                  padding: 10px 0;
                  display: inline-block;  
                  vertical-align: middle;
                  font-size: 16px;
               }

               .header a {
                 color: white;
               }

              .header img {
                 height: 25px;
              }
  </style>
  <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">
  </script>
  <script src="http://nautstatic-10007657.file.myqcloud.com/static/css/readability.min.js" type="text/javascript">
  </script>
  <script type="text/javascript">
   $(document).ready(function() {
                 var loc = document.location;
                 var uri = {
                  spec: "http://dataunion.org/1140.html",
                  host: "http://dataunion.org",
                  prePath: "http://dataunion.org",
                  scheme: "http",
                  pathBase: "http://dataunion.org/"
                 };
    
                 var documentClone = document.cloneNode(true);
                 var article = new Readability(uri, documentClone).parse();
     
                 document.getElementById("xmain").innerHTML = article.content;
                });
  </script>
  <!-- 1466454926: Accept with keywords: (title(0.2):环境,社区,数据,数盟,时, topn(0.166666666667):定义,作业,Hadoop,键入,表达式,选项,文件,自定义,数据库,预测性,文章,服务器,日志,数据,节点,版本,部署,步骤,适配器,分割器,数盟,计数器,脚本,调度,应用程序,用例,消息,模块,过滤器,邮件).-->
 </head>
 <body onload="">
  <div class="header">
   <div class="container">
    <div class="row">
     <div class="col-xs-6 col-sm-6 text-left">
      <a href="/databee">
       <img src="http://nautidea-10007657.cos.myqcloud.com/logo_white.png"/>
      </a>
      <a href="/databee">
       <p>
        数螺
       </p>
      </a>
     </div>
     <div class="hidden-xs col-sm-6 text-right">
      <p>
       致力于数据科学的推广和知识传播
      </p>
     </div>
    </div>
   </div>
  </div>
  <div class="container text-center">
   <h1>
    Spring XD简介：大数据应用的运行时环境
   </h1>
  </div>
  <div class="container" id="xmain">
   ﻿﻿
   <title>
    Spring XD简介：大数据应用的运行时环境 | 数盟社区
   </title>
   <!-- All in One SEO Pack 2.2.7.6.2 by Michael Torbert of Semper Fi Web Design[32,70] -->
   <!-- /all in one seo pack -->
   <!--
<div align="center">
<a href="http://strata.oreilly.com.cn/hadoop-big-data-cn?cmp=mp-data-confreg-home-stcn16_dataunion_pc" target="_blank"><img src="http://dataunion.org/wp-content/uploads/2016/05/stratabj.jpg"/ ></a>
</div>
-->
   <header id="header-web">
    <div class="header-main">
     <hgroup class="logo">
      <h1>
       <a href="http://dataunion.org/" rel="home" title="数盟社区">
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/logo.png"/>
       </a>
      </h1>
     </hgroup>
     <!--logo-->
     <nav class="header-nav">
      <ul class="menu" id="menu-%e4%b8%bb%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-71" id="menu-item-71">
        <a href="http://dataunion.org/category/events" title="events">
         活动
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22457" id="menu-item-22457">
          <a href="http://dataunion.org/2016timeline">
           2016档期
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22459" id="menu-item-22459">
          <a href="http://dataunion.org/category/parterc">
           合作会议
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-20869" id="menu-item-20869">
        <a href="http://dataunion.org/category/tech" title="articles">
         文章
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20867" id="menu-item-20867">
          <a href="http://dataunion.org/category/tech/base" title="base">
           基础架构
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3302" id="menu-item-3302">
          <a href="http://dataunion.org/category/tech/ai" title="ai">
           人工智能
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3303" id="menu-item-3303">
          <a href="http://dataunion.org/category/tech/analysis" title="analysis">
           数据分析
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21920" id="menu-item-21920">
          <a href="http://dataunion.org/category/tech/dm">
           数据挖掘
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3314" id="menu-item-3314">
          <a href="http://dataunion.org/category/tech/viz" title="viz">
           可视化
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3305" id="menu-item-3305">
          <a href="http://dataunion.org/category/tech/devl" title="devl">
           编程语言
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-20876" id="menu-item-20876">
        <a href="http://dataunion.org/category/industry">
         行业
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-16328" id="menu-item-16328">
          <a href="http://dataunion.org/category/industry/case" title="case">
           行业应用
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2112" id="menu-item-2112">
          <a href="http://dataunion.org/category/industry/demo" title="demo">
           Demo展示
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21562" id="menu-item-21562">
          <a href="http://dataunion.org/category/industry/news">
           行业资讯
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-311" id="menu-item-311">
        <a href="http://dataunion.org/category/sources" title="sources">
         资源
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20870" id="menu-item-20870">
        <a href="http://dataunion.org/category/books" title="book">
         图书
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21363" id="menu-item-21363">
        <a href="http://dataunion.org/category/training">
         课程
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-21853" id="menu-item-21853">
        <a href="http://dataunion.org/category/jobs">
         职位
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22050" id="menu-item-22050">
          <a href="http://dataunion.org/category/career">
           职业规划
          </a>
         </li>
        </ul>
       </li>
      </ul>
     </nav>
     <!--header-nav-->
    </div>
   </header>
   <!--header-web-->
   <div id="main">
    <div id="soutab">
     <form action="http://dataunion.org/" class="search" method="get">
     </form>
    </div>
    <div id="container">
     <nav id="mbx">
      当前位置：
      <a href="http://dataunion.org">
       首页
      </a>
      &gt;
      <a href="http://dataunion.org/category/uncategorized">
       未分类
      </a>
      &gt;  正文
     </nav>
     <!--mbx-->
     <article class="content">
      <header align="centre" class="contenttitle">
       <div class="mscc">
        <h1 class="mscctitle">
         <a href="http://dataunion.org/1140.html">
          Spring XD简介：大数据应用的运行时环境
         </a>
        </h1>
        <address class="msccaddress ">
         <em>
          1,376 次阅读 -
         </em>
         <a href="http://dataunion.org/category/uncategorized" rel="category tag">
          未分类
         </a>
        </address>
       </div>
      </header>
      <div class="content-text">
       <p>
        <strong style="color: #444444;">
         简介
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD（eXtreme Data，极限数据）是Pivotal的大数据产品。它结合了
          <span style="color: #286ab2;">
           <a href="http://www.infoq.com/articles/microframeworks1-spring-boot" style="color: #336699;" target="_blank">
            Spring Boot
           </a>
          </span>
          和
          <span style="color: #286ab2;">
           <a href="http://www.infoq.com/minibooks/grails-getting-started" style="color: #336699;" target="_blank">
            Grails
           </a>
          </span>
          ，组成Spring IO平台的执行部分。尽管Spring XD利用了大量现存的Spring项目，但它是一种运行时环境，而不是一个类库或者框架，它包含带有服务器的bin目录，你可以通过命令行启动并与之交互。运行时可以运行在开发机上、客户端自己的服务器上、AWS EC2上或者Cloud Foundry上。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD中的关键组件是管理和容器服务器（Admin and Container Servers）。使用一种
          <span style="color: #286ab2;">
           <a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html" style="color: #336699;" target="_blank">
            DSL
           </a>
          </span>
          ，你可以把所需处理任务的描述通过HTTP提交给管理服务器。然后管理服务器会把处理的任务映射到处理模块（每个模块都是一个执行单元，作为Spring应用程序上下文实现）中。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          该产品具有两种操作模式：-single和multi-node。第一种是由单独的进程负责所有处理和管理的工作。这对于入门很有用，同样适合于应用程序的快速开发和测试。本文中的所有实例都被设计为在单一节点模式下工作。第二种是一种分布式模式。分布式集成运行时（Distributed Integration Runtime，DIRT）会在多个节点之间分发处理的任务。除了可以拥有VM或者物理服务器作为这些节点之外，Spring XD还让你可以在
          <span style="color: #286ab2;">
           <a href="https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html" style="color: #336699;" target="_blank">
            Hadoop YARN
           </a>
          </span>
          集群上运行。
         </span>
        </span>
       </div>
       <p>
        <br style="color: #444444;"/>
        <span style="color: #444444;">
         <span style="color: #000000;">
          <span style="font-family: Arial, sans-serif;">
          </span>
         </span>
        </span>
       </p>
       <p>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          XD管理服务器会把处理的任务切分成彼此独立的模块定义，并把每个模块分配给使用Apache
          <span style="color: #286ab2;">
           <a href="https://zookeeper.apache.org/" style="color: #336699;" target="_blank">
            ZooKeeper
           </a>
          </span>
          的容器实例。每个容器都会监听分配给它的模块定义，然后部署模块，创建Spring应用程序上下文来运行它。需要注意的是，在我撰写这篇文章的时候，Spring XD中还不会自带Zookeeper。兼容的版本是3.4.6，你可以从
          <span style="color: #286ab2;">
           <a href="http://zookeeper.apache.org/releases.html" style="color: #336699;" target="_blank">
            这里
           </a>
          </span>
          下载。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          模块通过使用配置好的消息中间件传递消息来共享数据。传输层是可插拔的，并且支持其他两种Pivotal项目——
          <span style="color: #286ab2;">
           <a href="http://redis.io/" style="color: #336699;" target="_blank">
            Redis
           </a>
          </span>
          和
          <span style="color: #286ab2;">
           <a href="http://www.rabbitmq.com/" style="color: #336699;" target="_blank">
            Rabbit MQ
           </a>
          </span>
          ——以及现成可用的内存数据库。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         用例
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          下图让你可以对Spring XD有个总体上的了解。
         </span>
        </span>
       </div>
       <p>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <img src="http://infoqstatic.com/resource/articles/introducing-spring-xd/zh/resources/0822000.jpg"/>
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD团队认为，对于创建大数据解决方案来说，创建的主要用例有四种：数据吸纳、实时分析、工作流调度以及导出。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           数据吸纳
          </strong>
          提供了一种能力，可以从各种输入源接收数据，并把它传输给大数据存储库，像HDFS（Hadoop文件系统）、Splunk或者MPP数据库。和文件一样，数据源可能包括来自于移动设备、支持MQ遥感传输协议（MQTT）的传感器以及像Twitter之类的社交流的事件。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          吸纳过程会贯穿事件驱动数据的处理，以及针对其他类型数据的批处理（MR、PIG、Hive、Cascading、SQL等等）。流和作业的两个世界截然不同，但是Spring XD试图使用
          <span style="color: #286ab2;">
           <a href="http://www.eaipatterns.com/MessageChannel.html" style="color: #336699;" target="_blank">
            通道抽象（channel abstraction）
           </a>
          </span>
          来模糊二者之间的边界，从而让流可以触发批处理作业，而批处理作业也可以发送事件从而触发其他流。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          对于流来说，会通过叫做“Taps”的抽象来支持某些
          <strong>
           实时分析
          </strong>
          ，像获取指标和计数值。从概念上，Taps让你可以介入到流中，执行实时分析，并有选择地为外部系统生成数据，像GemFire、Redis或者其他内存数据网格。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          一旦你在大数据仓库中拥有数据，那么就需要某种
          <strong>
           工作流
          </strong>
          工具来对处理进行调度。调度非常必要，因为你编写的脚本或者map-reduce作业通常会长时间运行，并采用带有多个步骤的事件链的方式。理想状况下，你需要在事件失败的时候，能够从特定的步骤重新启动，而不是完全从头来过。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          最后还需要
          <strong>
           导出
          </strong>
          步骤，从而把数据放到更适合展现的系统中，可能还会做进一步的分析。例如从HDFS到RDBMS（关系型数据库管理系统），在那里你可以使用更为传统的商业智能工具。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD想要提供一种统一、分布式和可扩展的服务来满足这些用例。它没有从头开始，而是利用了大量已经存在的Spring技术。例如，它使用了Spring Batch来支持工作流调度和导出用例，使用Spring Integration来支持流处理，此外还使用了各种各样的企业应用程序集成模式。其他关键的Spring产品包括：使用Spring Data处理NoSQL/Hadoop工作，使用Reactor为编写异步程序提供简化的API，特别是在使用
          <span style="color: #286ab2;">
           <a href="https://lmax-exchange.github.io/disruptor/" style="color: #336699;" target="_blank">
            LMAX Disruptor
           </a>
          </span>
          的时候。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         安装Spring XD
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          在接下来的部分，我们会详细看一下每个用例。你可能想要自己来试验一下这些例子。起步非常简单。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          为了开始，你要确保系统至少安装了Java JDK 6或者更新的版本。我推荐使用Java JDK 7。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          对于OSX用户，如果还没有Homebrew的话，请安装，然后运行：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         brew tap pivotal/tapbrew install springxd
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          这会安装到
          <i>
           /usr/local/Cellar/springxd/1.0.0.M7/libexec
          </i>
          （依赖于Spring XD的库）。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           注意
          </strong>
          ：如果你随后想要安装更新的版本，那么使用
          <i>
           brew upgrade springXD
          </i>
          就可以。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          红帽或者CentOS的用户可以使用Yum来安装。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Windows用户可以下载最新的.zip文件，解压，安装到文件夹，然后把XD_HOME这个环境变量设置成安装文件夹。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          你可以通过键入以下命令，从而在单一节点上启动Spring XD：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         xd-singlenode
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          键入以下命令来打开另一个终端窗口并启动shell程序：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         xd-shell
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          你会看到下面这样的情况：
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <img src="http://infoqstatic.com/resource/articles/introducing-spring-xd/zh/resources/0822001.jpg"/>
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          为了检查它是否正常工作，让我们创建一个快速的流：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         stream create –definition “time | log” –name ticktock –deploy
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          在你启动Spring XD的控制台中，你会看到下面这样的显示：
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <img src="http://infoqstatic.com/resource/articles/introducing-spring-xd/zh/resources/0822002.jpg"/>
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          你可以从shell中使用
          <i>
           stream destroy
          </i>
          命令删除流。
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         stream destroy –name ticktock
        </span>
        <strong style="color: #444444;">
         数据吸纳
        </strong>
        <strong style="color: #444444;">
         流
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          在Spring XD中，基本的流会定义事件驱动数据的吸纳，从源到目的地，经过任意多个处理器。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD外壳程序支持针对流定义的一种DSL，其中带有管道和过滤器语法
          <i>
           – source | processor | sink
          </i>
          。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          例如，像这样的命令
          <i>
           stream create
          </i>
          <i>
           –name filetest –definition “file | log” –deploy
          </i>
          会记录文件内容的日志。
          <br/>
          除了能够处理文件之外，Spring XD还支持很多其他源，包括：
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         HTTP
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          命令
          <i>
           HTTP POST /streams/myStream “http | file –deploy” –
          </i>
          表示“从HTTP消费我的流，并转到文件”。这会默认到9000端口。你可以使用–port选项覆盖默认的端口设置。这是针对HTTP的唯一参数。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          例如（从XD的外壳程序）：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         xd:&gt; stream create –name infoqhttptest9010 –definition “http –port=9010 | file” –deploy
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          你可以向这个新端口提交一些数据来测试：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         xd:&gt; http post –target http://localhost:9010 –data “hello world”
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          你会在控制台窗口看到以下文本：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         &gt; POST (text/plain;Charset=UTF-8) http://localhost:9010 hello world &gt; 200 OK
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          打开另一个终端窗口并键入：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         $ cd /tmp/xd/output $ tail -f infoqhttptest9010.out
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          你会在输出中看到“hello world”。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          想要发送二进制数据，你需要把Content-Type头部说明设置为application/octet-string：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         $ curl –data-binary @foo.zip -H’Content-Type: application-octet-string’ http://localhost:9000
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          键入
          <i>
           stream destroy infoqhttptest9010
          </i>
          来完成清理工作。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         Mail
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Mail是用来接收email的源模块。根据所使用的协议，它可以以池的形式工作，或者在可用的时候就接收email。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          例如：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         xd:&gt; stream create –name infoqmailstream –definition “mail –host=imap.gmail.com –username=charles@c4media.com –password=secret –delete=false | file” –deploy
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           注意
          </strong>
          ：这里的delete选项很重要，因为对于Spring XD来说一旦被消费，默认情况就会删除电子邮件。Spring XD也拥有
          <i>
           markAsRead
          </i>
          选项，但默认值是false。
          <span style="color: #286ab2;">
           <a href="http://docs.spring.io/spring-integration/docs/4.0.2.RELEASE/reference/html/mail.html" style="color: #336699;" target="_blank">
            Spring集成文档
           </a>
          </span>
          中对此做出了详细的说明，但主要问题是，POP3协议只知道在单独一个会话中读取了什么。作为POP3邮件适配器运行的结果，当邮件在每个池中变成可用状态时，就会被成功发送，且没有任何一个邮件消息会被多次发送。然而，当你重启适配器并开始新的会话时，所有位于上一个会话中已经获取过的邮件消息就可能会被再次获取。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          如果你在控制台日志中看到这样的错误信息：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         WARN task-scheduler-1 org.springframework.integration.mail.ImapIdleChannelAdapter:230 – error occurred in idle task javax.mail.AuthenticationFailedException: failed to connect, no password specified?
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          试着在你的URL把@符号替换为URL编码的样子：
          <i>
           %40
          </i>
          :
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         stream create –name infoqmailstream –definition “mail –host=imap.gmail.com –username=charles%40c4media.com –password=secret –delete=false | file” –deploy
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          打开另一个终端窗口并键入：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         $ cd /tmp/xd/output $ tail -f infoqmailstream.out
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          给你自己发送一封邮件，以看到它在日志文件中显示的内容。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         Twitter搜索
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD就可以使用Twitter搜索API（twittersearch），也可以使用来自于
          <span style="color: #286ab2;">
           <a href="https://dev.twitter.com/docs/streaming-apis/streams/public" style="color: #336699;" target="_blank">
            Twitter’s Streaming API
           </a>
          </span>
          的数据。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          例如：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         xd:&gt; stream create –name twittersearchinfoq –definition “twittersearch –outputType=application/json –fixedDelay=1000 –consumerKey=afes2uqo6JAuFljdJFhqA –consumerSecret=0top8crpmd1MXGEbbgzAwVJSAODMcbeAbhwHXLnsg –query=’infoq’ | file” –deploy
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          它使用twittersearch的JSON输出格式，每1000毫秒使用令牌“infoq”在Twitter中进行查询。为了运行上面的内容，你需要一个消费者密钥（由Twitter发放的应用程序消费者密钥）以及它相关的密钥。
         </span>
        </span>
       </div>
       <p>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          它的结果会通过管道以同步的方式传输给一个文件，默认是
          <i>
           /tmp/xd/output/[streamName].out
          </i>
          。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          打开另一个终端窗口并键入：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         $ cd /tmp/xd/output $ tail -f twittersearchjava.out
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          稍等一会儿，你会发现超出了Twitter APE搜索的限制，并且会在控制台窗口中（你在其中在单一节点上启动了XD）看到这样的消息：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         11:27:01,468 WARN task-scheduler-1 client.RestTemplate:581 – GET request for “https://api.twitter.com/1.1/search/tweets.json?q=infoq&amp;count=20&amp;since_id=478845525597237248” resulted in 429 (Client Error (429)); invoking error handler11:27:01,471 ERROR task-scheduler-1 handler.LoggingHandler:145 – org.springframework.social.RateLimitExceededException: The rate limit has been exceeded.
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          键入
          <i>
           stream destroy twittersearchinfoq
          </i>
          来完成清理工作。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         其他输入流
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           GemFire
          </strong>
          ：在XD容器进程中配置一个缓存（cache）和副本区域，它和Spring Integration GemFire同时存在于通道适配器中，它们由CacheListener支持，而后者会输出区域中外部输入事件所触发的输出消息。它还支持连续的查询，那让客户端应用程序可以使用对象查询语言（OQL）来创建GemFire查询，并注册一个CQ监听器，它会订阅查询，每次查询的结果集发生变化的时候都会得到通知。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           Reactor IP
          </strong>
          ：它会作为服务器，让远程的组织能够连接到XD，并通过原生的TCP或者UDP socket提交数据。reactor-ip源和标准的tcp源的区别在于，它基于
          <span style="color: #286ab2;">
           <a href="https://github.com/reactor/reactor" style="color: #336699;" target="_blank">
            Reactor项目
           </a>
          </span>
          ，可以被配置为使用
          <span style="color: #286ab2;">
           <a href="http://www.infoq.com/cn/articles/martinfowler.com/articles/lmax.html" style="color: #336699;" target="_blank">
            LMAX Disruptor RingBuffer
           </a>
          </span>
          库，它能够允许极高的吸纳率，大概每秒1M。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           Syslog
          </strong>
          ：有三种syslog源：reactor-syslog、syslog-udp和syslog-tcp。reactor-syslog适配器使用tcp，会构建Reactor项目中可用的功能，并提供超过syslog-tcp适配器中更好的吞吐量。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           TCP
          </strong>
          ：它会作为服务器，让远程的组织能够连接到XD，并通过原生的TCP socket提交数据。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           MQTT
          </strong>
          ：连接到MQTT服务器并接收遥测消息。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         Taps
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          在流的任意位置，你都可以插入tap——这个词来自于Gregor Hohpe等人著的《
          <span style="color: #286ab2;">
           <a href="http://www.eaipatterns.com/" style="color: #336699;" target="_blank">
            应用程序集成模式（Application Integration Patterns）
           </a>
          </span>
          》一书中的“wire tap”模式。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <img src="http://infoqstatic.com/resource/articles/introducing-spring-xd/zh/resources/0822003.jpg"/>
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          从概念上说，你会在通道中插入一个简单的接收列表，它会把每个进入的消息发布到主通道和次通道中。流并不知道它的管道中任何tap的存在。删除流并不会自动删除tap——它们需要单独删除。然而，如果加入了tap的流被重新创建，那么已经存在的tap会继续起作用。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          tap可以在流的任意位置（或者多个位置）插入。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         处理器
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          流中的数据可以以多种方式处理：
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           过滤器
          </strong>
          ：它可以用于决定消息是否应该发送给输出通道。最简单的情况是，过滤器只是一个
          <span style="color: #286ab2;">
           <a href="http://docs.spring.io/spring/docs/3.0.x/reference/expressions.html" style="color: #336699;" target="_blank">
            SpEL
           </a>
          </span>
          布尔表达式，它会返回真或假。例如：
         </span>
        </span>
       </div>
       <p>
        <span style="color: #444444;">
         xd:&gt; stream create –name filtertest –definition “http | filter –expression=payload==’good’ | log” –deploy
        </span>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          会记录带有“good”关键字的所有内容的日志。然而，过滤器也可以相当复杂。Spring XD支持JSONPath计算式以及自定义的Groovy脚本。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           转换
          </strong>
          ：用来转换消息的内容或结构。它支持简单的SpEL，对于更复杂的转换，可以使用Groovy脚本。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           分割器
          </strong>
          ：和Spring集成中的分割器概念类似，这里的分割器会使用SpEL表达式，它会计算一个数组或者集合的值，从而把单独一条消息切分成多个独立的消息。你可以使用JSON oath表达式，但无法使用自定义的Groovy脚本。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           聚合器（Aggregator）
          </strong>
          ：和分割器相反，它会把多条消息组合成一条。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          最后是
          <strong>
           脚本
          </strong>
          ，可以用于调用特定的Groovy脚本作为处理步骤。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         槽（Sinks）
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          最简单的槽是日志和文件。其他可以支持的槽包括Hadoop（HDFS）、JDBC、TCP、Mail、RabbitMQ、GemFire服务器、Splunk服务器和MQQT。还有一个动态路由选项，允许基于SpEL表达式或Groovy脚本的值，把Spring XD消息路由到命名通道中。让我有一点奇怪的是，在这里缺少一般目的的JMS槽，尽管我们可以像
          <span style="color: #286ab2;">
           [url=http://www.infoq.com/cn/articles/(
           <a href="https://github.com/spring-projects/spring-xd/wiki/Extending-XD" style="color: #336699;" target="_blank">
            https://github.com/spring-projects/spring-xd/wiki/Extending-XD
           </a>
           ]这里[/url]
          </span>
          描述的一样构建自定义的槽模块。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         实时分析
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD为各种机器学习评分算法的实时计算提供了支持，还为使用各种类型的计数器和计量器进行实时数据分析提供了支持。分析功能是通过可以添加到流中的模块实现的。在那种情况下，实时分析是通过和数据吸纳一样的模块完成的。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          尽管流的主要角色可以是执行实时分析，但更为常见的是添加一个tap来初始化另一个流，其中分析——例如：一个字段值的计数器——会应用给通过主要流吸纳的同样数据之上。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD中自带提供了一些简单的分析工具，它们都实现为抽象API，针对内存数据库和Redis而实现，如下：
         </span>
        </span>
       </div>
       <ul style="color: #444444;">
        <li>
         <strong>
          简单计数器
         </strong>
        </li>
        <li>
         <strong>
          字段值计数器：
         </strong>
         计算特定字段出现的次数。
        </li>
        <li>
         <strong>
          聚合计数器
         </strong>
         : 在Mongo和Redis之类的工具中比较常见，让你可以对数据根据时间——例如分钟、小时、月、年等——进行分片。
        </li>
        <li>
         <strong>
          计量器（Gauge）：
         </strong>
         最新的值
        </li>
        <li>
         <strong>
          富计量器
         </strong>
         ：最新的值，运行的平均值，最大、最小值
        </li>
       </ul>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          对于预测性的分析，Spring XD包含了一个可扩展的类库，基于它可以构建其他实现。例如在GitHub上提供的
          <span style="color: #286ab2;">
           <a href="https://github.com/spring-projects/spring-xd-modules/tree/master/analytics-ml-pmml" style="color: #336699;" target="_blank">
            PMML模块
           </a>
          </span>
          ，它和
          <span style="color: #286ab2;">
           <a href="https://github.com/jpmml/jpmml-evaluator" style="color: #336699;" target="_blank">
            JPMML-Evaluator
           </a>
          </span>
          库集成，为更广范围内的
          <span style="color: #286ab2;">
           <a href="https://github.com/jpmml/jpmml-evaluator#features" style="color: #336699;" target="_blank">
            模型类型
           </a>
          </span>
          提供了支持，并且可以与从
          <span style="color: #286ab2;">
           <a href="http://www.infoq.com/cn/articles/www.r-project.org/" style="color: #336699;" target="_blank">
            R
           </a>
          </span>
          、
          <span style="color: #286ab2;">
           <a href="http://www.infoq.com/cn/articles/rattle.togaware.com/" style="color: #336699;" target="_blank">
            Rattle
           </a>
          </span>
          、
          <span style="color: #286ab2;">
           <a href="http://www.infoq.com/cn/articles/www.knime.org/" style="color: #336699;" target="_blank">
            KNIME
           </a>
          </span>
          和
          <span style="color: #286ab2;">
           <a href="http://www.infoq.com/cn/articles/rapid-i.com/content/view/181/190/" style="color: #336699;" target="_blank">
            RapidMiner
           </a>
          </span>
          导出的模块进行互操作。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          产品还包含了一些抽象，可以在流处理应用程序中事件分析模型。在撰写这篇文章的时候，只支持预测性模块标记语言（Predictive Model Markup Language，PMML），但Pivotal告诉InfoQ：
         </span>
        </span>
       </div>
       <blockquote style="color: #444444;">
        <div align="left">
         我们正在进行一个内部项目，以提供广泛的分析解决方案，它的目标是围绕“欺诈检测”和“网络安全”之类的情况。我们还在与OSS库——像“
         <span style="color: #286ab2;">
          <a href="https://github.com/addthis/stream-lib" style="color: #336699;" target="_blank">
           stream-lib
          </a>
         </span>
         ”和“
         <span style="color: #286ab2;">
          <a href="http://www.infoq.com/cn/articles/graphlab.org/projects/index.html" style="color: #336699;" target="_blank">
           graphlab
          </a>
         </span>
         ”——的整合做了一些设计。
        </div>
       </blockquote>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Pivotal还说明，他们期望，随着时间的推移能够在这个领域看到发展，并且对预测性建模提供额外的支持。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         批处理作业、工作流调度和导出
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          除了流之外，Spring XD还包含了基于Spring Batch启动和监控批处理作业的功能，而Spring Batch也被用于支持工作流调度和导出用例。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          工作流的概念会被转换成批处理作业，那可以被认为是各个步骤的有向图，每个图都是一个处理步骤：
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <img src="http://infoqstatic.com/resource/articles/introducing-spring-xd/zh/resources/0822004.jpg"/>
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          根据配置的情况，步骤可以顺序或者并行执行。它们可以复制或者处理来自于文件、数据库、MapReduce、Pig、Hive或Cascading作业的数据，并且和允许重启的检查点一起持久化。和流一样，作业支持单节点，或者可以和数据分区一起分布。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD自身带有少量预定义的作业，可以用来向Hadoop文件系统HDFS导出数据，或者从中导入数据。这些作业覆盖了FTP到HDFS、HDFS到JDBC、HDFS到MongoDB和JDBC到HDFS。还有一个作业用于向JDBC导出文件。你可以在
          <i>
           /libexec/xd/modules/job
          </i>
          文件夹中找到。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD提供了相当基础的、基于浏览器的图形化界面，当前让你可以执行和任务相关的批处理作业。对于启动Spring XD，管理员界面在
          <span style="color: #286ab2;">
           <a href="http://localhost:9393/admin-ui" style="color: #336699;" target="_blank">
            这里
           </a>
          </span>
          提供：
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           （点击图像可以放大）
          </strong>
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <span style="color: #286ab2;">
           <a href="http://infoqstatic.com/resource/articles/introducing-spring-xd/zh/resources/0822005.png" style="color: #336699;" target="_blank">
            <img src="http://infoqstatic.com/resource/articles/introducing-spring-xd/zh/resources/0822005.png"/>
           </a>
          </span>
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          正如在上面的截屏中可以看到的，管理员界面当前包括四个标签页：
         </span>
        </span>
       </div>
       <ul class="litype_1" style="color: #444444;" type="1">
        <li>
         <strong>
          模块
         </strong>
         ：列举了可用的批处理作业和更多细节（像作业模块选项以及模块的XML配置文件）。
        </li>
        <li>
         <strong>
          定义
         </strong>
         ：列举了XD批处理作业定义，并提供了部署或者卸载那些作业的动作。
        </li>
        <li>
         <strong>
          部署
         </strong>
         ：列举了所有部署了的作业，并提供了一种选项来启动部署好的作业。一旦作业已经部署，它就可以通过管理员界面启动。
        </li>
        <li>
         <strong>
          执行
         </strong>
         ：列举了批处理作业的执行状况，并提供了一种选项，如果批处理作业可以重启，并且处于停止或者失败状态，那么就重启。
        </li>
       </ul>
       <p>
        <strong style="color: #444444;">
         结论
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          Spring XD当前还处于开发中。第一个里程碑版本已经在2013年六月发布，而GA版本期望在今年（2014年）七月发布。它基于Apache第二版许可。在GitHub上提供了
          <span style="color: #286ab2;">
           <a href="https://github.com/spring-projects/spring-xd" style="color: #336699;" target="_blank">
            源代码
           </a>
          </span>
          和
          <span style="color: #286ab2;">
           <a href="https://github.com/spring-projects/spring-xd-samples" style="color: #336699;" target="_blank">
            示例
           </a>
          </span>
          。你还可以找到在线的
          <span style="color: #286ab2;">
           <a href="https://sonar.springsource.org/dashboard/index/org.springframework.xd:spring-xd" style="color: #336699;" target="_blank">
            Sonar代码度量
           </a>
          </span>
          。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          产品可能还很新，但正如我们看到的，它构建在成熟的基础之上——Spring Batch、Spring Integration和Sping Data，以及Reactor项目、LMAX Disruptor和Apache Hadoop——并提供了一种轻量级的运行时环境，可以通过DSL来配置和集成，只需要很少代码，甚至不需要。Spring XD为开发者提供了一种便利的方式，可以开始构建大数据应用程序，为构建和部署这样的应用程序提供了“一站式服务”。
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          对于想要探索这个产品的读者，有大量资源可用，包括主要的
          <span style="color: #286ab2;">
           <a href="https://github.com/spring-projects/spring-xd/wiki" style="color: #336699;" target="_blank">
            wiki
           </a>
          </span>
          ，还有覆盖了实时分析的
          <span style="color: #286ab2;">
           <a href="https://www.youtube.com/watch?v=nOfzrQ6CdKI" style="color: #336699;" target="_blank">
            视频
           </a>
          </span>
          。
         </span>
        </span>
       </div>
       <p>
        <strong style="color: #444444;">
         关于作者
        </strong>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <img src="http://infoqstatic.com/resource/articles/introducing-spring-xd/zh/resources/0822006.jpeg"/>
          <strong>
           Charles Humble
          </strong>
          从2014年三月开始担任InfoQ.com编辑团队的主编，引领我们的内容创建工作，包括新闻、文章、书籍、视频和采访。在全职加入InfoQ之前，Charles领导过我们的Java部分工作，是PRPi顾问公司的CTO，该公司是一家简历研究公司，在2012年七月被PwC收购。他作为开发者、架构师和开发经理在软件企业中工作了近20年。在空闲时间，他会写一些音乐，并且是伦敦周边的技术小组
          <span style="color: #286ab2;">
           <a href="http://www.twofish-music.com/" style="color: #336699;" target="_blank">
            Twofish
           </a>
          </span>
          的成员。
         </span>
        </span>
       </div>
       <p>
       </p>
       <div align="left" style="color: #444444;">
        <span style="color: #000000;">
         <span style="font-family: Arial, sans-serif;">
          <strong>
           查看英文原文：
          </strong>
          <span style="color: #286ab2;">
           <a href="http://www.infoq.com/articles/introducing-spring-xd" style="color: #336699;" target="_blank">
            Introducing Spring XD, a Runtime Environment for Big Data Applications
           </a>
          </span>
         </span>
        </span>
       </div>
       <div align="left" style="color: #444444;">
        <span style="font-family: Arial, sans-serif;">
         <span style="color: #b00000;">
          From：InfoQ
         </span>
        </span>
       </div>
       <p>
       </p>
      </div>
      <div>
       <strong>
        注：转载文章均来自于公开网络，仅供学习使用，不会用于任何商业用途，如果侵犯到原作者的权益，请您与我们联系删除或者授权事宜，联系邮箱：contact@dataunion.org。转载数盟网站文章请注明原文章作者，否则产生的任何版权纠纷与数盟无关。
       </strong>
      </div>
      <!--content_text-->
      <div class="fenxian">
       <!-- JiaThis Button BEGIN -->
       <div class="jiathis_style_32x32">
        <p class="jiathis_button_weixin">
        </p>
        <p class="jiathis_button_tsina">
        </p>
        <p class="jiathis_button_qzone">
        </p>
        <p class="jiathis_button_cqq">
        </p>
        <p class="jiathis_button_tumblr">
        </p>
        <a class="jiathis jiathis_txt jtico jtico_jiathis" href="http://www.jiathis.com/share" target="_blank">
        </a>
        <p class="jiathis_counter_style">
        </p>
       </div>
       <!-- JiaThis Button END -->
      </div>
     </article>
     <!--content-->
     <!--相关文章-->
     <div class="xianguan">
      <div class="xianguantitle">
       相关文章！
      </div>
      <ul class="pic">
       <li>
        <a href="http://dataunion.org/24638.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/wKioL1ZEJp3jRet8AACxXwc7b9I583-245x200.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24638.html" rel="bookmark" title="在TensorFlow里使用卷积神经网络进行图像和文本识别">
         在TensorFlow里使用卷积神经网络进行图像和文本识别
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24534.html">
         <img src="http://dataunion.org/wp-content/uploads/2015/05/01132835_70592-300x199.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24534.html" rel="bookmark" title="基于heatmaply和plotly的交互式热力图">
         基于heatmaply和plotly的交互式热力图
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24514.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/05/146456584884267800_a580x330-300x171.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24514.html" rel="bookmark" title="python中的魔术方法__">
         python中的魔术方法__
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24396.html">
         <img src="http://dataunion.org/wp-content/uploads/2015/07/QQ截图20150725215416_副本-298x300.png"/>
        </a>
        <a class="link" href="http://dataunion.org/24396.html" rel="bookmark" title="人工智能、机器学习等，2016年值得关注的27项企业技术">
         人工智能、机器学习等，2016年值得关注的27项企业技术
        </a>
       </li>
      </ul>
     </div>
     <!--相关文章-->
     <div class="comment" id="comments">
      <!-- You can start editing here. -->
      <!-- If comments are open, but there are no comments. -->
      <div class="title">
       期待你一针见血的评论，Come on！
      </div>
      <div id="respond">
       <p>
        不用想啦，马上
        <a href="http://dataunion.org/wp-login.php?redirect_to=http%3A%2F%2Fdataunion.org%2F1140.html">
         "登录"
        </a>
        发表自已的想法.
       </p>
      </div>
     </div>
     <!-- .nav-single -->
    </div>
    <!--Container End-->
    <aside id="sitebar">
     <div class="sitebar_list2">
      <div class="wptag">
       <span class="tagtitle">
        热门标签+
       </span>
       <div class="tagg">
        <ul class="menu" id="menu-%e5%8f%8b%e6%83%85%e9%93%be%e6%8e%a5">
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1605" id="menu-item-1605">
          <a href="http://taidizh.com/">
           泰迪智慧
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20884" id="menu-item-20884">
          <a href="http://www.transwarp.cn/">
           星环科技
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3538" id="menu-item-3538">
          <a href="http://datall.org/">
           珈和遥感
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20888" id="menu-item-20888">
          <a href="http://www.chinahadoop.cn/">
           小象学院
          </a>
         </li>
        </ul>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <div class="textwidget">
       <div align="center">
        <a href="http://study.163.com/course/courseMain.htm?courseId=991022" target="_blank">
         <img src="http://dataunion.org/wp-content/uploads/2016/03/dv.jpg"/>
        </a>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       文章分类
      </h4>
      <div class="tagcloud">
       <a class="tag-link-44" href="http://dataunion.org/category/industry/demo" style="font-size: 10.204724409449pt;" title="4个话题">
        Demo展示
       </a>
       <a class="tag-link-31" href="http://dataunion.org/category/experts" style="font-size: 15.826771653543pt;" title="52个话题">
        专家团队
       </a>
       <a class="tag-link-870" href="http://dataunion.org/category/tech/ai" style="font-size: 19.795275590551pt;" title="273个话题">
        人工智能
       </a>
       <a class="tag-link-488" href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f" style="font-size: 8pt;" title="1个话题">
        加入数盟
       </a>
       <a class="tag-link-869" href="http://dataunion.org/category/tech/viz" style="font-size: 17.204724409449pt;" title="93个话题">
        可视化
       </a>
       <a class="tag-link-30" href="http://dataunion.org/category/partners" style="font-size: 10.645669291339pt;" title="5个话题">
        合作伙伴
       </a>
       <a class="tag-link-889" href="http://dataunion.org/category/parterc" style="font-size: 11.582677165354pt;" title="8个话题">
        合作会议
       </a>
       <a class="tag-link-104" href="http://dataunion.org/category/books" style="font-size: 12.96062992126pt;" title="15个话题">
        图书
       </a>
       <a class="tag-link-220" href="http://dataunion.org/category/tech/base" style="font-size: 19.850393700787pt;" title="281个话题">
        基础架构
       </a>
       <a class="tag-link-219" href="http://dataunion.org/category/tech/analysis" style="font-size: 19.409448818898pt;" title="232个话题">
        数据分析
       </a>
       <a class="tag-link-887" href="http://dataunion.org/category/tech/dm" style="font-size: 13.291338582677pt;" title="17个话题">
        数据挖掘
       </a>
       <a class="tag-link-34" href="http://dataunion.org/category/tech" style="font-size: 20.732283464567pt;" title="404个话题">
        文章
       </a>
       <a class="tag-link-1" href="http://dataunion.org/category/uncategorized" style="font-size: 22pt;" title="693个话题">
        未分类
       </a>
       <a class="tag-link-4" href="http://dataunion.org/category/events" style="font-size: 14.503937007874pt;" title="29个话题">
        活动
       </a>
       <a class="tag-link-890" href="http://dataunion.org/category/tech/%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0" style="font-size: 10.204724409449pt;" title="4个话题">
        深度学习
       </a>
       <a class="tag-link-221" href="http://dataunion.org/category/tech/devl" style="font-size: 18.968503937008pt;" title="193个话题">
        编程语言
       </a>
       <a class="tag-link-888" href="http://dataunion.org/category/career" style="font-size: 15.661417322835pt;" title="48个话题">
        职业规划
       </a>
       <a class="tag-link-5" href="http://dataunion.org/category/jobs" style="font-size: 14.11811023622pt;" title="25个话题">
        职位
       </a>
       <a class="tag-link-871" href="http://dataunion.org/category/industry" style="font-size: 15.716535433071pt;" title="49个话题">
        行业
       </a>
       <a class="tag-link-613" href="http://dataunion.org/category/industry/case" style="font-size: 16.984251968504pt;" title="84个话题">
        行业应用
       </a>
       <a class="tag-link-885" href="http://dataunion.org/category/industry/news" style="font-size: 17.425196850394pt;" title="102个话题">
        行业资讯
       </a>
       <a class="tag-link-10" href="http://dataunion.org/category/training" style="font-size: 14.228346456693pt;" title="26个话题">
        课程
       </a>
       <a class="tag-link-16" href="http://dataunion.org/category/sources" style="font-size: 15.661417322835pt;" title="48个话题">
        资源
       </a>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       功能
      </h4>
      <ul>
       <li>
        <a href="http://dataunion.org/wp-login.php?action=register">
         注册
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/wp-login.php">
         登录
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/feed">
         文章
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/comments/feed">
         评论
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="https://cn.wordpress.org/" title="基于WordPress，一个优美、先进的个人信息发布平台。">
         WordPress.org
        </a>
       </li>
      </ul>
     </div>
    </aside>
    <div class="clear">
    </div>
   </div>
   <!--main-->
   ﻿
   <footer id="dibu">
    <div class="about">
     <div class="right">
      <ul class="menu" id="menu-%e5%ba%95%e9%83%a8%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18024" id="menu-item-18024">
        <a href="http://dataunion.org/category/partners">
         合作伙伴
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20881" id="menu-item-20881">
        <a href="http://dataunion.org/contribute">
         文章投稿
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20872" id="menu-item-20872">
        <a href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f">
         加入数盟
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22441" id="menu-item-22441">
        <a href="http://dataunion.org/f-links">
         友情链接
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20874" id="menu-item-20874">
        <a href="http://dataunion.org/aboutus">
         关于数盟
        </a>
       </li>
      </ul>
      <p class="banquan">
       数盟社区        ，
        做最棒的数据科学社区
      </p>
     </div>
     <div class="left">
      <ul class="bottomlist">
       <li>
        <a href="http://weibo.com/DataScientistUnion  " target="_blank" 　title="">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weibo.png"/>
        </a>
       </li>
       <li>
        <a class="cd-popup-trigger" href="http://dataunion.org/1140.html#0">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weixin.png"/>
        </a>
       </li>
      </ul>
      <div class="cd-popup">
       <div class="cd-popup-container">
        <h1>
         扫描二维码,加微信公众号
        </h1>
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/2014-12-06-1515289049.png"/>
        <a class="cd-popup-close" href="http://dataunion.org/1140.html">
        </a>
       </div>
       <!-- cd-popup-container -->
      </div>
      <!-- cd-popup -->
     </div>
    </div>
    <!--about-->
    <div class="bottom">
     <a href="http://dataunion.org/">
      数盟社区
     </a>
     <a href="http://www.miitbeian.gov.cn/" rel="external nofollow" target="_blank">
      京ICP备14026740号
     </a>
     联系我们：
     <a href="mailto:contact@dataunion.org" target="_blank">
      contact@dataunion.org
     </a>
     <div class="tongji">
     </div>
     <!--bottom-->
     <div class="scroll" id="scroll" style="display:none;">
      ︿
     </div>
    </div>
   </footer>
   <!--dibu-->
  </div>
 </body>
</html>